# coding: utf8

from tipo1 import *
import level1, level2, main_level2

def main():
    # Constrói a tela e cria os itens
    tamanho = 800,600
    tela = pygame.display.set_mode(tamanho)
    cena = Inicio('fundo.jpg', 'ap.png')
    ator = Ator('kurumin_idle.png','kurumin_andar.png', 130, 300)
    plataforma = Objeto('plataforma.png',400, 585)
    porta1 = ObjetoAnimado('porta.png', 'porta_aberta.png', 125, 481)
    porta2 = ObjetoAnimado('porta.png', 'porta_aberta.png', 670, 481)
    balao = Balao('balao.png','balao2.png',400, 380)
    pontos = 0
    # início de tudo
    pygame.init()
    # obtém os quadros por segundo
    clock = pygame.time.Clock()
    # Status das portas
    status1, status2 = 0,0
    while 1:
        # Controla os quadros por egundo
        clock.tick(40)
        # Limpa a tela e desenha o fundo
        tela.fill(0)
        tela.blit(cena.imagem, (0,0))
        # Faz o ator parar de cair
        if ator.rect.colliderect(plataforma.rect):
            ator.velocidade[1] = 0
        # Captura os eventos
        for evento in pygame.event.get():
            if evento.type == pygame.QUIT:
                pygame.quit
                exit(0)
            # Teclas pressionadas
            if evento.type == pygame.KEYDOWN:
                # Tecla para iniciar o jogo
                if evento.key == pygame.K_1:
                    if hasattr(cena, 'ap'):
                        # Troca a imagem de fundo e apaga o atributo de apresentação (inicia o jogo)
                        cena.imagem = pygame.image.load('fundo2.png')
                        del cena.ap
                # Teclas para mover o personagem
                if evento.key == pygame.K_RIGHT:
                    ator.direita()
                if evento.key == pygame.K_LEFT:
                    ator.esquerda()
                # O ator pula ao apertar seta para cima ou entra no game
                if evento.key == pygame.K_UP:
                    # Verifica se ele está no chão e de frente para a porta
                    if ator.rect.colliderect(plataforma.rect):
                        if ator.rect.colliderect(porta1.rect):
                            # Abre a porta 1
                            fim_alvo = level1.main()
							# Verifica se já foi jogado
                            if status1 == False:
                            	# Caso ele não vença, fecha a porta
                                if fim_alvo == 0:
                                    porta1.animar()
                                else:
                                    porta1.animar()
                                    pontos += 1
                                    status1 = True
                        elif ator.rect.colliderect(porta2.rect):
                            # Abre a porta 2
                            fim_gol = level2.main()
							# Verifica se já foi jogado
                            if status2 == False:
                            	# Caso ele não vença, fecha a porta
                                if fim_alvo == 0:
                                    porta2.animar()
                                else:
                                    porta2.animar()
                                    pontos += 1
                                    status2 = True
                        elif ator.rect.colliderect(balao.rect):
                            if pontos == 2:
                                balao.velocidade = [5,-20]
                                balao.animar()
                                ator.rect.center = 100, 800
                        else:
                            ator.velocidade[1] = -15
            # Teclas despressionadas
            if evento.type == pygame.KEYUP:
                if evento.key == pygame.K_RIGHT:
                    ator.parar()
                if evento.key == pygame.K_LEFT:
                    ator.reset_position()
                #Faz o ator parar de subir caso a tecla seja solta 
                if evento.key == pygame.K_UP:
                    if ator.rect.centery < 485:
                        ator.velocidade[1] = 15
        if ator.rect.centery < 350:
            ator.velocidade[1] = 15
        if pontos == 2:
            tela.blit(balao.imagem, balao.rect)
            balao.mover_se()
            if balao.rect.centery < -250:
                main_level2.main()
                balao.reset()
                ator.reset(130, 300)
        # Verifica se a imagem de apresentação existe
        if hasattr(cena, 'ap'):
            tela.blit(cena.ap, (230,100))
        else:
            # Mostra a cena inicial depois da apresentação
            tela.blit(plataforma.imagem, plataforma.rect)
            ator.mover()
            tela.blit(porta1.imagem, porta1.rect)
            tela.blit(porta2.imagem, porta2.rect)
            tela.blit(ator.imagem, ator.rect)
        pygame.display.update()
main()
